The present invention relates generally to graphical interfaces, and more particularly to a computer/user interface for visually creating an environment of actors, and particularly to a graphical environment for creating an environment of constrained interacting actors.
Standard programming languages, such as assembly language, Fortran, Cobol, Pascal and C, are very different from natural languages such as English, French, etc. Although the developers of the standard programming languages did attempt to make these languages somewhat intuitive by providing some similarities to natural languages, they are not accessible to the layman. These programming languages are termed "procedural" languages since the exact sequence of procedures to be performed by the computer must be specified by the user. Procedural languages generally contain conditional statements, iterative statements, and subprograms.
Visual programming languages, such as Lab View, go a step farther in terms of providing an intuitive interface between the user and the computer by providing the user with the ability to create a system of arbitrary combinations of visual iconographic primitives, the primitives generally corresponding to subprograms and dataflow commands in a text-based procedural language. The library of primitives is generally highly application specific. For instance, Lab View is a system designed for signal processing, and its primitives include signal processing components such as Fast Fourier Transform modules and inverters, and input/output controls such as sliders, gauges and knobs. However, the primitives in Lab View are not of a low enough level to allow the user to construct sliders or gauges of any type other than those provided by the primitives without using an underlying textual programming language.
Hypercard was developed in the mid-1970's by Apple Computer, Inc. (Apple). Using a textual programming language called "Hypertalk," Hypercard allows the user to configure visual components, such as buttons, text and graphics, to create an interface, such as a database. (Hypercard and Hypertalk are registered trademarks of Apple Computer, Inc.) Hypertalk is considered to be one of the first successful natural computer languages. The user may then peruse a configured database setup by pushing buttons to access the text and graphics in the database. In Hypercard over 50% of the underlying Hypertalk code controls the graphical interface.
Object constraint programs, such as Thing Lab by Alan Borning at Xerox PARC (see Xerox technical report #425), allow the user to construct a system of interacting actors subject to constraints such as rotation about a point, translation along a line, distance between a first actor and a second actor being equal to distance between a third actor and a fourth actor, etc. In general, these programs have the disadvantages that (i) the imposed constraints are not readily visible to the user, (ii) the primitives are of such a low level that construction of simulated real-world actors requires many construction steps, and (iii) the state of one actor cannot be coupled to another actor, except by the system of physical constraints provided in the primitives.
Graphical interfaces a user may wish to create include systems such as a simulated flight control panel or the standard Macintosh windowing environment where a window includes pull-down menus, icons, scroll bars, etc. To create such environments using C, Lab View, or even Hypercard, can be a complex and difficult programming task beyond the capabilities of all but the experienced programmer.
The present invention allows the programmer to construct a system consisting of complex interacting actors from a set of useful and intuitive primitive actors (primitives). Components of the system may be finite state actors, such as numerical readouts or toggle switches, or continuous-state actors such as sliders and gauges. The primitives which provide couplings between actors include: sockets for rotation of an actor about a point; grooves for translation of actors along a path; pins to specify the locations at which groove and socket constraints are applied; glue to affix one actor to another; boxes to prevent actors from coming closer than a predetermined length from each other; and groups of springs to align the spacing of actors. For instance, the slider 10 shown in FIG. 1a may be considered to be a square control knob 12 within a rectangular frame 14, the knob 12 being constrained to motion along a groove 18 by pin 16. A calibration scale 19 consists of a series of lines, as shown in FIG. 1a, though it may alternatively be a sequence of numbers. The pin 16 and groove 18 may be visible to the user, as shown in FIG. 1a, or hidden for ease of viewing. On an Apple computer having a mouse or a trackball the knob 12 may be moved by moving the cursor (not shown) to the knob 12, depressing the mouse button, dragging the knob 12 to the desired position, and releasing the mouse button.
Similarly, the gauge 20 shown in FIG. 1b is constructed of a hemicycle viewing window 22, and a needle 24 mounted in socket 26 by pin 28. Because the needle 24 is mounted in the socket 26 it is constrained to rotate about the center of the socket 26. The present invention allows the user to place the needle 24 "behind" the window 22 so that only the portion of the needle 24 inside the window 22 is visible to the user, therefore allowing the gauge 20 to more closely resemble real-world gauges. The needle 24 may be moved by positioning the cursor on the needle 24, and clicking and dragging the needle 24 to a new position.
The present invention also allows for coupling of the state of the slider 10 to the state of the gauge 20. This coupled configuration may, for instance, simulate a throttle and speedometer: as the throttle knob 12 is moved from the left hand side of the groove 18 to the righthand side, the tip of the needle 24 in the gauge 20 moves from the far lefthand edge of the window 22 to the far righthand edge.
In the present invention the constraints incorporated into a system of actors are represented iconographically. For instance, a rotational coupling is represented by a pin and socket icon, a translational coupling along a line is represented by a groove and pin icon, a fixed distance coupling between actors is represented by a box, etc. These iconographic representations allow the user to quickly and easily determine the constraints imposed on the system of actors.
An object of the present invention is therefore to provide an intuitive graphical interface accessible to the layman.
Another object of the present invention is to provide a graphical interface which allows a wide range of environments to be created.
Another object of the present invention is to provide a graphical interface which allows for the construction of kinetic actors whose motions are constrained, and where the motion of an actor or actors may control the motion of another actor or actors.
Another object of the present invention is to provide a graphical interface with motional constraints that are represented in icon form in the system of actors.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the claims.